package com.utils;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;

import javax.swing.*;

/**
 * 用于记录日志的工具类，它里面提供了公共的代码
 */
public class Logger {
        /**
         * 前置通知
         */
        public  void beforePrintLog(JoinPoint joinPoint){
            Object[] args = joinPoint.getArgs();
            System.out.println("前置通知Logger类中的beforePrintLog方法开始记录日志了。。。"+args);
        }

        /**
         * 后置通知
         */
        public  void afterReturningPrintLog(){
            System.out.println("后置通知Logger类中的afterReturningPrintLog方法开始记录日志了。。。");
        }
        /**
         * 异常通知
         */
        public  void afterThrowingPrintLog(){
            System.out.println("异常通知Logger类中的afterThrowingPrintLog方法开始记录日志了。。。");
        }

        /**
         * 最终通知
         */
        public  void afterPrintLog(){
            System.out.println("最终通知Logger类中的afterPrintLog方法开始记录日志了。。。");
        }

        /**
         * 环绕通知
         */
        public  void around(ProceedingJoinPoint pjp) throws Throwable {
            System.out.println("环绕1");
            pjp.proceed();
            System.out.println("环绕2");
         }
}